/*
 * InteligenciaAntiga.cpp
 * Created on: 24/11/2011
 * Author: Arthur Holanda
 */

#include "model/InteligenciaAntiga.h"
#include "model/AnalisadorJogadas.h"

InteligenciaAntiga::InteligenciaAntiga(Jogador* jogador) {
	this->jogador = jogador;
}

InteligenciaAntiga::~InteligenciaAntiga() {
}

Acao * InteligenciaAntiga::GetAcao()
{
	Controlador* controlador = Controlador::GetInstance();

	AnalisadorJogadas* analisador = new AnalisadorJogadas();
	analisador->Construct(jogador->GetMao(), controlador->GetMesa());

	Acao* acao = null;

	//nao tem blefe
	if (analisador->TemRoyalStraightFlush()) {
		AppLog("jogador pc tem royal straight flush");
		acao = new Acao(AUMENTAR, 25);
	} else if (analisador->TemStraightFlush()) {
		AppLog("jogador pc tem straight flush");
		acao = new Acao(AUMENTAR, 20);
	} else if (analisador->TemQuadra()) {
		AppLog("jogador pc tem quadra");
		acao = new Acao(AUMENTAR, 15);
	} else if (analisador->TemFullHouse()) {
		AppLog("jogador pc tem full house");
		acao = new Acao(AUMENTAR, 10);
	} else if (analisador->TemFlush()) {
		AppLog("jogador pc tem flush");
		acao = new Acao(AUMENTAR, 8);
	} else if (analisador->TemStraight()) {
		AppLog("jogador pc tem straight");
		acao = new Acao(AUMENTAR, 5);
	} else if (analisador->TemTrinca()) {
		AppLog("jogador pc tem trinca");
		if(controlador->GetMaiorApostaRodada() > 0){
			acao = new Acao(COBRIR, controlador->GetMaiorApostaRodada());
		}else{
			acao = new Acao(APOSTAR, 4);
		}
	} else if (analisador->TemDoisPares()) {
		if(controlador->GetMaiorApostaRodada() > 0){
			acao = new Acao(COBRIR, controlador->GetMaiorApostaRodada());
		}else{
			acao = new Acao(APOSTAR, 4);
		}
	} else if (analisador->TemPar()) {
		if(controlador->GetMaiorApostaRodada() > 0){
			acao = new Acao(COBRIR, controlador->GetMaiorApostaRodada());
		}else{
			acao = new Acao(APOSTAR, 2);
		}
	} else {
		AppLog("jogador pc tem High Card");
		if(controlador->GetMaiorApostaRodada() > 0){
			acao = new Acao(DESISTIR, 0);
		}else{
			acao = new Acao(PASSAR, 0);
		}
	}
	delete analisador;
	return acao;
}
